Destructuring Declarations

Mobile App Development - কটলিন (Kotlin) - Data Classes এবং Sealed Classes
235

Destructuring Declarations

কটলিনে Destructuring Declarations একটি শক্তিশালী ফিচার যা ডেটা ক্লাস বা অন্যান্য ডেটা ধারণকারী অবজেক্ট থেকে মানগুলো সহজে এক্সট্রাক্ট বা আনপ্যাক করার সুবিধা দেয়। এটি একটি এক্সপ্রেশন যা একাধিক ভ্যারিয়েবলে একযোগে মান অ্যাসাইন করতে ব্যবহৃত হয়। নিচে Destructuring Declarations সম্পর্কে বিস্তারিত আলোচনা করা হলো।


১. Destructuring Declarations কি?

Destructuring Declarations এর মাধ্যমে আপনি কোনো অবজেক্ট বা ডেটা ক্লাস থেকে এর ভ্যালুগুলো আলাদা করে এক বা একাধিক ভ্যারিয়েবলে রাখতে পারেন। এটি কোডকে আরও সংক্ষিপ্ত এবং রিডেবল করে তোলে।

সাধারণ সিনট্যাক্স:

val (a, b, c) = someObject
  • এখানে, someObject থেকে a, b, এবং c ভ্যারিয়েবলে মানগুলি ডেসট্রাকচার করে রাখা হয়েছে।

২. Data Classes-এর সাথে Destructuring

কটলিনে Data Classes তৈরি করলে ডিফল্টভাবে componentN() মেথড জেনারেট হয়, যা Destructuring Declarations সমর্থন করে।

উদাহরণ:

data class User(val name: String, val age: Int)

fun main() {
    val user = User("Alice", 25)
    val (name, age) = user

    println(name) // আউটপুট: Alice
    println(age)  // আউটপুট: 25
}

ব্যাখ্যা:

  • এখানে, User একটি Data Class এবং এতে দুটি প্রোপার্টি আছে: name এবং age
  • (name, age) দিয়ে Destructuring Declarations ব্যবহার করা হয়েছে, যা user অবজেক্টের name এবং age মানগুলো এক্সট্রাক্ট করে।

৩. Destructuring Collections

কটলিনে কালেকশন (যেমন: List) থেকে সরাসরি Destructuring Declarations ব্যবহার করে মান এক্সট্রাক্ট করা যায়।

উদাহরণ:

fun main() {
    val numbers = listOf(1, 2, 3)
    val (first, second, third) = numbers

    println(first)  // আউটপুট: 1
    println(second) // আউটপুট: 2
    println(third)  // আউটপুট: 3
}

ব্যাখ্যা:

  • এখানে numbers একটি লিস্ট এবং (first, second, third) দিয়ে লিস্টের প্রথম তিনটি মান ডেসট্রাকচার করে ভ্যারিয়েবলে রাখা হয়েছে।

৪. Destructuring Functions-এর সাথে

আপনি ফাংশনের রিটার্ন ভ্যালু থেকেও Destructuring Declarations ব্যবহার করতে পারেন, যদি ফাংশনটি একটি Data Class বা পেয়ার/ট্রিপল রিটার্ন করে।

উদাহরণ:

fun getUser(): User {
    return User("Bob", 30)
}

fun main() {
    val (name, age) = getUser()
    println("Name: $name, Age: $age")
}

ব্যাখ্যা:

  • getUser() ফাংশনটি একটি User অবজেক্ট রিটার্ন করে। (name, age) দিয়ে Destructuring Declarations ব্যবহার করে name এবং age এক্সট্রাক্ট করা হয়েছে।

৫. Pair এবং Triple এর সাথে Destructuring

কটলিনে Pair এবং Triple ক্লাসগুলো সহজে দুই বা তিনটি মান ধারণ করতে ব্যবহৃত হয়। এগুলোর জন্যও Destructuring Declarations সমর্থিত।

Pair উদাহরণ:

fun main() {
    val pair = Pair("Hello", 42)
    val (greeting, number) = pair

    println(greeting) // আউটপুট: Hello
    println(number)   // আউটপুট: 42
}

Triple উদাহরণ:

fun main() {
    val triple = Triple("Alice", 25, "Engineer")
    val (name, age, profession) = triple

    println(name)       // আউটপুট: Alice
    println(age)        // আউটপুট: 25
    println(profession) // আউটপুট: Engineer
}

৬. Loop-এ Destructuring

কটলিনে Destructuring Declarations লুপের সাথেও ব্যবহার করা যায়, বিশেষ করে ম্যাপ বা লিস্টের সাথে কাজ করার সময়।

Map-এর উপর লুপ:

fun main() {
    val map = mapOf("Alice" to 25, "Bob" to 30)
    for ((name, age) in map) {
        println("$name is $age years old")
    }
}

ব্যাখ্যা:

  • এখানে ম্যাপের প্রতিটি এন্ট্রি (key, value) ফরম্যাটে ডেসট্রাকচার করে এক্সেস করা হয়েছে।

উপসংহার

কটলিনে Destructuring Declarations কোডকে সংক্ষিপ্ত এবং রিডেবল করার জন্য একটি কার্যকরী ফিচার। এটি বিশেষ করে Data Classes, কালেকশন, এবং পেয়ার/ট্রিপল-এর সাথে ডেটা এক্সট্রাক্ট এবং অ্যাসাইন করতে সহায়ক। এর মাধ্যমে আপনি একাধিক ভ্যালু সহজেই এক্সেস এবং ম্যানেজ করতে পারেন, যা প্রোগ্রামিংকে আরও মডুলার এবং কার্যকর করে তোলে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...